package com.bf.electroplating.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 企业排污口历史数据表
 *
 * @author system
 * @since 2025-01-11
 */
@Getter
@Setter
@TableName("enterprise_outfall_history_data")
@Schema(description = "企业排污口历史数据表")
public class EnterpriseOutfallHistoryData implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "排污口ID")
    @TableField("outfall_id")
    private Long outfallId;

    @Schema(description = "排污口编号")
    @TableField("outfall_code")
    private String outfallCode;

    @Schema(description = "企业ID")
    @TableField("enterprise_id")
    private Long enterpriseId;

    @Schema(description = "企业名称")
    @TableField("enterprise_name")
    private String enterpriseName;

    @Schema(description = "统计日期")
    @TableField("statistics_date")
    private LocalDate statisticsDate;

    @Schema(description = "统计小时(0-23)")
    @TableField("statistics_hour")
    private Integer statisticsHour;

    @Schema(description = "统计类型：HOURLY-小时，DAILY-日，MONTHLY-月")
    @TableField("statistics_type")
    private String statisticsType;

    @Schema(description = "COD平均值(mg/L)")
    @TableField("cod_avg_value")
    private BigDecimal codAvgValue;

    @Schema(description = "COD最大值(mg/L)")
    @TableField("cod_max_value")
    private BigDecimal codMaxValue;

    @Schema(description = "COD最小值(mg/L)")
    @TableField("cod_min_value")
    private BigDecimal codMinValue;

    @Schema(description = "COD超标次数")
    @TableField("cod_exceed_count")
    private Integer codExceedCount;

    @Schema(description = "氨氮平均值(mg/L)")
    @TableField("ammonia_nitrogen_avg_value")
    private BigDecimal ammoniaNitrogenAvgValue;

    @Schema(description = "氨氮最大值(mg/L)")
    @TableField("ammonia_nitrogen_max_value")
    private BigDecimal ammoniaNitrogenMaxValue;

    @Schema(description = "氨氮最小值(mg/L)")
    @TableField("ammonia_nitrogen_min_value")
    private BigDecimal ammoniaNitrogenMinValue;

    @Schema(description = "氨氮超标次数")
    @TableField("ammonia_nitrogen_exceed_count")
    private Integer ammoniaNitrogenExceedCount;

    @Schema(description = "总磷平均值(mg/L)")
    @TableField("total_phosphorus_avg_value")
    private BigDecimal totalPhosphorusAvgValue;

    @Schema(description = "总磷最大值(mg/L)")
    @TableField("total_phosphorus_max_value")
    private BigDecimal totalPhosphorusMaxValue;

    @Schema(description = "总磷最小值(mg/L)")
    @TableField("total_phosphorus_min_value")
    private BigDecimal totalPhosphorusMinValue;

    @Schema(description = "总磷超标次数")
    @TableField("total_phosphorus_exceed_count")
    private Integer totalPhosphorusExceedCount;

    @Schema(description = "总氮平均值(mg/L)")
    @TableField("total_nitrogen_avg_value")
    private BigDecimal totalNitrogenAvgValue;

    @Schema(description = "总氮最大值(mg/L)")
    @TableField("total_nitrogen_max_value")
    private BigDecimal totalNitrogenMaxValue;

    @Schema(description = "总氮最小值(mg/L)")
    @TableField("total_nitrogen_min_value")
    private BigDecimal totalNitrogenMinValue;

    @Schema(description = "总氮超标次数")
    @TableField("total_nitrogen_exceed_count")
    private Integer totalNitrogenExceedCount;

    @Schema(description = "总铜平均值(mg/L)")
    @TableField("total_copper_avg_value")
    private BigDecimal totalCopperAvgValue;

    @Schema(description = "总铜最大值(mg/L)")
    @TableField("total_copper_max_value")
    private BigDecimal totalCopperMaxValue;

    @Schema(description = "总铜最小值(mg/L)")
    @TableField("total_copper_min_value")
    private BigDecimal totalCopperMinValue;

    @Schema(description = "总铜超标次数")
    @TableField("total_copper_exceed_count")
    private Integer totalCopperExceedCount;

    @Schema(description = "总铬平均值(mg/L)")
    @TableField("total_chromium_avg_value")
    private BigDecimal totalChromiumAvgValue;

    @Schema(description = "总铬最大值(mg/L)")
    @TableField("total_chromium_max_value")
    private BigDecimal totalChromiumMaxValue;

    @Schema(description = "总铬最小值(mg/L)")
    @TableField("total_chromium_min_value")
    private BigDecimal totalChromiumMinValue;

    @Schema(description = "总铬超标次数")
    @TableField("total_chromium_exceed_count")
    private Integer totalChromiumExceedCount;

    @Schema(description = "总锌平均值(mg/L)")
    @TableField("total_zinc_avg_value")
    private BigDecimal totalZincAvgValue;

    @Schema(description = "总锌最大值(mg/L)")
    @TableField("total_zinc_max_value")
    private BigDecimal totalZincMaxValue;

    @Schema(description = "总锌最小值(mg/L)")
    @TableField("total_zinc_min_value")
    private BigDecimal totalZincMinValue;

    @Schema(description = "总锌超标次数")
    @TableField("total_zinc_exceed_count")
    private Integer totalZincExceedCount;

    @Schema(description = "PH平均值")
    @TableField("ph_avg_value")
    private BigDecimal phAvgValue;

    @Schema(description = "PH最大值")
    @TableField("ph_max_value")
    private BigDecimal phMaxValue;

    @Schema(description = "PH最小值")
    @TableField("ph_min_value")
    private BigDecimal phMinValue;

    @Schema(description = "PH超标次数")
    @TableField("ph_exceed_count")
    private Integer phExceedCount;

    @Schema(description = "流量平均值(m³/h)")
    @TableField("flow_rate_avg_value")
    private BigDecimal flowRateAvgValue;

    @Schema(description = "流量最大值(m³/h)")
    @TableField("flow_rate_max_value")
    private BigDecimal flowRateMaxValue;

    @Schema(description = "流量最小值(m³/h)")
    @TableField("flow_rate_min_value")
    private BigDecimal flowRateMinValue;

    @Schema(description = "流量累计值(m³)")
    @TableField("flow_rate_total_value")
    private BigDecimal flowRateTotalValue;

    @Schema(description = "总记录数")
    @TableField("total_records")
    private Integer totalRecords;

    @Schema(description = "有效记录数")
    @TableField("valid_records")
    private Integer validRecords;

    @Schema(description = "超标记录数")
    @TableField("exceed_records")
    private Integer exceedRecords;

    @Schema(description = "数据完整性(%)")
    @TableField("data_completeness")
    private BigDecimal dataCompleteness;

    @Schema(description = "创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
}
